import _mergeJSXProps from "@vue/babel-helper-vue-jsx-merge-props";
import {createNamespace} from '../utils';
import {inherit} from '../utils/functional';
import Cell from '../cell'; // Types

var _createNamespace = createNamespace('coupon-cell'),
    createComponent = _createNamespace[0],
    bem = _createNamespace[1],
    t = _createNamespace[2];

function formatValue(props) {
    var coupons = props.coupons,
        chosenCoupon = props.chosenCoupon,
        currency = props.currency;
    var coupon = coupons[chosenCoupon];

    if (coupon) {
        var value = coupon.value || coupon.denominations || 0;
        return "-" + currency + (value / 100).toFixed(2);
    }

    return coupons.length === 0 ? t('tips') : t('count', coupons.length);
}

function CouponCell(h, props, slots, ctx) {
    var valueClass = props.coupons[props.chosenCoupon] ? 'van-coupon-cell--selected' : '';
    var value = formatValue(props);
    return h(Cell, _mergeJSXProps([{
        "class": bem(),
        "attrs": {
            "value": value,
            "title": props.title || t('title'),
            "border": props.border,
            "isLink": props.editable,
            "valueClass": valueClass
        }
    }, inherit(ctx, true)]));
}

CouponCell.model = {
    prop: 'chosenCoupon'
};
CouponCell.props = {
    title: String,
    coupons: {
        type: Array,
        default: function _default() {
            return [];
        }
    },
    currency: {
        type: String,
        default: '¥'
    },
    border: {
        type: Boolean,
        default: true
    },
    editable: {
        type: Boolean,
        default: true
    },
    chosenCoupon: {
        type: Number,
        default: -1
    }
};
export default createComponent(CouponCell);